package hotel.quartz.oversea.job.callback;

import hotel.base.oversea.constant.CommonConstants;
import hotel.base.oversea.constant.CommonUrlConstants;
import hotel.base.oversea.utils.GsonUtils;
import hotel.base.oversea.utils.Result;
import hotel.quartz.oversea.config.service.RedisService;
import hotel.quartz.oversea.job.base.BaseJob;
import hotel.quartz.oversea.util.JobRestTemplateUtils;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.quartz.JobExecutionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.client.RestTemplate;


/**
 * 美团产品：标准价，价格库
 */
@Slf4j
public class MtCbGoodsPriceLibraryJob implements BaseJob {
    private String timestamp = "Mcgplj"+String.valueOf(System.currentTimeMillis());

    @Autowired
    RedisService redisService;

    @Autowired
    RestTemplate restTemplate;


    /**
     *   该定时器触发时间ei
     *   3 点 00分：
     *                触发标准价统计  （保存到标准价库表）(耗时1-2分钟 10万产品 异步通知的3天价*格日期数据)
     *                更新 上架产品标准价缓存
     *                1、获取到今天统计的产品价格（统计的是所有过去三天产品价格）
     *                2、遍历筛选携程上架的产品
     *                3、对携程上架的产品进行缓存的标准价更新
     *
     *   callback项目涉及调整：
     *                1、callback中判断到变化价格时增加判断，是否大于 [标准价-允许亏损价]
     *
     * @param jobExecutionContext
     */
    @Override
    @SneakyThrows
    public void execute(JobExecutionContext jobExecutionContext) {
        Result result = JobRestTemplateUtils.post(CommonUrlConstants.MEITUAN_HOST+"/mtHotelGoods/statMtGoodsPriceLibraryCallback",null,restTemplate);
        if(result.getCode()== CommonConstants.SUCCESS){
            log.info("Mt Cb Goods Price Library Job 触发标准价统计返回={}", GsonUtils.GsonString(result));
        }else{
            log.error("Mt Cb Goods Price Library Job 异常 触发标准价统计失败={}", GsonUtils.GsonString(result));
        }
    }


}
